Imports Microsoft.VisualBasic
Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess.Types
Imports System.Data
Imports DataAccesGenerales
Imports DataAcces

Public Class DataAccesCapt_TrasiegoCombustible
  Private Const consTimeOut As Integer = 0 
  
  ''' <summary>
  ''' Funcion para Insertar un regristro en la tabla Capt_TrasiegoCombustible
  ''' </summary>
  Public Function Capt_TrasiegoCombustible_InsertarModificar(pnidDocumento As Long, pnidViaje As Integer, pnombreBuque As String, pEmpProveedor As String, pbuqueAbastecedor As String, pnidtipoCombustible As Integer, pcantidad As Long, pmuelle As String, pfInicio As Date, pfFin As Date, punidadMedida As String) As Byte
    Dim pTransaccion As Byte = 0
    Dim mensaje As String = String.Empty
    Try
      Using oraConnection As New Oracle.DataAccess.Client.OracleConnection(ConfigurationManager.ConnectionStrings("EDIV2DESOraClient").ConnectionString)
        Using oraCommandDocumentos As New Oracle.DataAccess.Client.OracleCommand()
          oraCommandDocumentos.Connection = oraConnection
          oraCommandDocumentos.CommandTimeout = consTimeOut
          oraCommandDocumentos.CommandType = CommandType.StoredProcedure
          oraCommandDocumentos.CommandText = "EDIV2.?NomPaquete.Capt_TrasiegoCombustibleInsertarModificar" 
          oraCommandDocumentos.Parameters.Add("pnidDocumento", pnidDocumento)
          oraCommandDocumentos.Parameters.Add("pnidViaje", pnidViaje)
          oraCommandDocumentos.Parameters.Add("pnombreBuque", pnombreBuque)
          oraCommandDocumentos.Parameters.Add("pEmpProveedor", pEmpProveedor)
          oraCommandDocumentos.Parameters.Add("pbuqueAbastecedor", pbuqueAbastecedor)
          oraCommandDocumentos.Parameters.Add("pnidtipoCombustible", pnidtipoCombustible)
          oraCommandDocumentos.Parameters.Add("pcantidad", pcantidad)
          oraCommandDocumentos.Parameters.Add("pmuelle", pmuelle)
          oraCommandDocumentos.Parameters.Add("pfInicio", pfInicio)
          oraCommandDocumentos.Parameters.Add("pfFin", pfFin)
          oraCommandDocumentos.Parameters.Add("punidadMedida", punidadMedida)

          oraCommandDocumentos.Parameters.Add("pTransaccion", Oracle.DataAccess.Client.OracleDbType.Byte).Direction = ParameterDirection.Output
          oraCommandDocumentos.Parameters.Add("pMensaje", Oracle.DataAccess.Client.OracleDbType.Varchar2, 200).Direction = ParameterDirection.Output

          oraConnection.Open()
          oraCommandDocumentos.ExecuteNonQuery()
          pTransaccion = CByte(oraCommandDocumentos.Parameters("pTransaccion").Value.ToString())
          mensaje = oraCommandDocumentos.Parameters("pMensaje").Value.ToString()
          oraConnection.Close()
        End Using
      End Using
    Catch ex As Exception
      Throw ex
    End Try
    Return pTransaccion
  End Function
  
  ''' <summary>
  ''' Funcion para consultar un registro de la tabla Capt_TrasiegoCombustible
  ''' </summary>
  ''' <param name="pNidDocumento">numero de documento</param>
  ''' <returns>DataTable</returns>
  ''' <remarks></remarks>
  Public Function Capt_TrasiegoCombustible_Consultar(pNidDocumento As Long) As DataTable
    Dim dtResultado As New DataTable("Capt_TrasiegoCombustibleConsulta")
    Try
      Using oraConnection As New Oracle.DataAccess.Client.OracleConnection(ConfigurationManager.ConnectionStrings("EDIV2DESOraClient").ConnectionString)
        Using oraCommandDocumentos As New Oracle.DataAccess.Client.OracleCommand()
          oraCommandDocumentos.Connection = oraConnection
          oraCommandDocumentos.CommandTimeout = consTimeOut
          oraCommandDocumentos.CommandType = CommandType.StoredProcedure
          oraCommandDocumentos.CommandText = "EDIV2.?NomPaquete.Capt_TrasiegoCombustibleConsultar" 
          oraCommandDocumentos.Parameters.Add("pNidDocumento", pNidDocumento)
          oraCommandDocumentos.Parameters.Add("pTransaccion", Oracle.DataAccess.Client.OracleDbType.Byte).Direction = ParameterDirection.Output
          oraCommandDocumentos.Parameters.Add(New Oracle.DataAccess.Client.OracleParameter("pCursor", OracleDbType.RefCursor)).Direction = ParameterDirection.Output

          Dim oraDataAdapter As New OracleDataAdapter(oraCommandDocumentos)
          oraDataAdapter.Fill(dtResultado)
          oraConnection.Close()
        End Using
      End Using
    Catch ex As Exception
      Throw ex
    End Try
    Return dtResultado
  End Function
  
  ''' <summary>
  ''' Funcion para generar la cadena XML Chilkat del documento de la tabla Capt_TrasiegoCombustible
  ''' </summary>
  ''' <param name="nidDocumento"> numero del documento</param>
  ''' <returns>Chilkat.Xml</returns>
  ''' <remarks></remarks>
  Public Function Capt_TrasiegoCombustible_CadenaOriginalXMLChilkat(nidDocumento As Long) As Chilkat.Xml
    Dim detalleDataSet As New DataSet("DatosCapt_TrasiegoCombustible")
    Try
      detalleDataSet = Capt_TrasiegoCombustible_DetalleXML(nidDocumento)
	  'En esta parte van las tablas obtenidas en la consulta anterior
	  'separadas dependiendo del reporte a crear, ejemplo:
	  detalleDataSet.Tables(0).TableName = "Informacion del Tramite"
      detalleDataSet.Tables(1).TableName = "Datos Capt_TrasiegoCombustible"
      detalleDataSet.Tables(2).TableName = "Archivos Anexos"
      detalleDataSet.Tables(3).TableName = "Incidencias"

      Dim xml As New Chilkat.Xml
      xml.LoadXml(detalleDataSet.GetXml())
      Return xml 'detalleDataSet.GetXml()
    Catch ex As Exception
      Throw ex
    End Try
  End Function

  ''' <summary>
  ''' Funcion para consultar el detalle del documento de la tabla Capt_TrasiegoCombustible
  ''' </summary>
  ''' <param name="pNidDocumento">numero del documento</param>
  ''' <returns>DataSet</returns>
  ''' <remarks></remarks>
  Public Function Capt_TrasiegoCombustible_DetalleXML(pNidDocumento As Long) As DataSet
    Dim dsDetalle As New DataSet("Capt_TrasiegoCombustibleDetalle")
    Dim pTransaccion As Byte = 0
    Try
      Using oraConnection As New Oracle.DataAccess.Client.OracleConnection(ConfigurationManager.ConnectionStrings("EDIV2DESOraClient").ConnectionString)
        Using oraCommandDocumentos As New Oracle.DataAccess.Client.OracleCommand()
          oraCommandDocumentos.Connection = oraConnection
          oraCommandDocumentos.CommandTimeout = consTimeOut
          oraCommandDocumentos.CommandType = CommandType.StoredProcedure
          oraCommandDocumentos.CommandText = "EDIV2.?NomPaquete.Capt_TrasiegoCombustibleDetalleXML"
          oraCommandDocumentos.Parameters.Add("pNidDocumento", pNidDocumento)
          oraCommandDocumentos.Parameters.Add("pTransaccion", Oracle.DataAccess.Client.OracleDbType.Byte).Direction = ParameterDirection.Output
          'En esta parte es para los cursores necesario 
		  oraCommandDocumentos.Parameters.Add(New Oracle.DataAccess.Client.OracleParameter("pEncabezado", OracleDbType.RefCursor)).Direction = ParameterDirection.Output
          oraCommandDocumentos.Parameters.Add(New Oracle.DataAccess.Client.OracleParameter("pDatos", OracleDbType.RefCursor)).Direction = ParameterDirection.Output
          oraCommandDocumentos.Parameters.Add(New Oracle.DataAccess.Client.OracleParameter("pAnexos", OracleDbType.RefCursor)).Direction = ParameterDirection.Output
          oraCommandDocumentos.Parameters.Add(New Oracle.DataAccess.Client.OracleParameter("pIncidencias", OracleDbType.RefCursor)).Direction = ParameterDirection.Output
		
          Dim oraDataAdapter As New OracleDataAdapter(oraCommandDocumentos)
          'pTransaccion = CByte(oraCommandDocumentos.Parameters("pTransaccion").Value.ToString())
          oraDataAdapter.Fill(dsDetalle)
        End Using
      End Using
    Catch ex As Exception
      Throw ex
    End Try
    Return dsDetalle
  End Function
  
  ''' <summary>
  ''' Funcion para Insertar un regristro en la tabla Capt_TrasiegoCombustible
  ''' </summary>
  Public Function Capt_TrasiegoCombustible_Insertar(pnidDocumento As Long, pnidViaje As Integer, pnombreBuque As String, pEmpProveedor As String, pbuqueAbastecedor As String, pnidtipoCombustible As Integer, pcantidad As Long, pmuelle As String, pfInicio As Date, pfFin As Date, punidadMedida As String) As Byte
    Dim pTransaccion As Byte = 0
    Dim mensaje As String = String.Empty
    Try
      Using oraConnection As New Oracle.DataAccess.Client.OracleConnection(ConfigurationManager.ConnectionStrings("EDIV2DESOraClient").ConnectionString)
        Using oraCommandDocumentos As New Oracle.DataAccess.Client.OracleCommand()
          oraCommandDocumentos.Connection = oraConnection
          oraCommandDocumentos.CommandTimeout = consTimeOut
          oraCommandDocumentos.CommandType = CommandType.StoredProcedure
          oraCommandDocumentos.CommandText = "EDIV2.?NomPaquete.Capt_TrasiegoCombustibleInsertar" 
          oraCommandDocumentos.Parameters.Add("pnidDocumento", pnidDocumento)
          oraCommandDocumentos.Parameters.Add("pnidViaje", pnidViaje)
          oraCommandDocumentos.Parameters.Add("pnombreBuque", pnombreBuque)
          oraCommandDocumentos.Parameters.Add("pEmpProveedor", pEmpProveedor)
          oraCommandDocumentos.Parameters.Add("pbuqueAbastecedor", pbuqueAbastecedor)
          oraCommandDocumentos.Parameters.Add("pnidtipoCombustible", pnidtipoCombustible)
          oraCommandDocumentos.Parameters.Add("pcantidad", pcantidad)
          oraCommandDocumentos.Parameters.Add("pmuelle", pmuelle)
          oraCommandDocumentos.Parameters.Add("pfInicio", pfInicio)
          oraCommandDocumentos.Parameters.Add("pfFin", pfFin)
          oraCommandDocumentos.Parameters.Add("punidadMedida", punidadMedida)

          oraCommandDocumentos.Parameters.Add("pTransaccion", Oracle.DataAccess.Client.OracleDbType.Byte).Direction = ParameterDirection.Output
          oraCommandDocumentos.Parameters.Add("pMensaje", Oracle.DataAccess.Client.OracleDbType.Varchar2, 200).Direction = ParameterDirection.Output

          oraConnection.Open()
          oraCommandDocumentos.ExecuteNonQuery()
          pTransaccion = CByte(oraCommandDocumentos.Parameters("pTransaccion").Value.ToString())
          mensaje = oraCommandDocumentos.Parameters("pMensaje").Value.ToString()
          oraConnection.Close()
        End Using
      End Using
    Catch ex As Exception
      Throw ex
    End Try
    Return pTransaccion
  End Function

  ''' <summary>
  ''' Funcion para Modificar un regristro en la tabla Capt_TrasiegoCombustible
  ''' </summary>
  Public Function Capt_TrasiegoCombustible_Modificar(pnidDocumento As Long, pnidViaje As Integer, pnombreBuque As String, pEmpProveedor As String, pbuqueAbastecedor As String, pnidtipoCombustible As Integer, pcantidad As Long, pmuelle As String, pfInicio As Date, pfFin As Date, punidadMedida As String) As Byte
    Dim pTransaccion As Byte = 0
    Dim mensaje As String = String.Empty
    Try
      Using oraConnection As New Oracle.DataAccess.Client.OracleConnection(ConfigurationManager.ConnectionStrings("EDIV2DESOraClient").ConnectionString)
        Using oraCommandDocumentos As New Oracle.DataAccess.Client.OracleCommand()
          oraCommandDocumentos.Connection = oraConnection
          oraCommandDocumentos.CommandTimeout = consTimeOut
          oraCommandDocumentos.CommandType = CommandType.StoredProcedure
          oraCommandDocumentos.CommandText = "EDIV2.?NomPaquete.Capt_TrasiegoCombustibleModificar"
          oraCommandDocumentos.Parameters.Add("pnidDocumento", pnidDocumento)
          oraCommandDocumentos.Parameters.Add("pnidViaje", pnidViaje)
          oraCommandDocumentos.Parameters.Add("pnombreBuque", pnombreBuque)
          oraCommandDocumentos.Parameters.Add("pEmpProveedor", pEmpProveedor)
          oraCommandDocumentos.Parameters.Add("pbuqueAbastecedor", pbuqueAbastecedor)
          oraCommandDocumentos.Parameters.Add("pnidtipoCombustible", pnidtipoCombustible)
          oraCommandDocumentos.Parameters.Add("pcantidad", pcantidad)
          oraCommandDocumentos.Parameters.Add("pmuelle", pmuelle)
          oraCommandDocumentos.Parameters.Add("pfInicio", pfInicio)
          oraCommandDocumentos.Parameters.Add("pfFin", pfFin)
          oraCommandDocumentos.Parameters.Add("punidadMedida", punidadMedida)

          oraCommandDocumentos.Parameters.Add("pTransaccion", Oracle.DataAccess.Client.OracleDbType.Byte).Direction = ParameterDirection.Output
          oraCommandDocumentos.Parameters.Add("pMensaje", Oracle.DataAccess.Client.OracleDbType.Varchar2, 200).Direction = ParameterDirection.Output

          oraConnection.Open()
          oraCommandDocumentos.ExecuteNonQuery()
          pTransaccion = CByte(oraCommandDocumentos.Parameters("pTransaccion").Value.ToString())
          mensaje = oraCommandDocumentos.Parameters("pMensaje").Value.ToString()
          oraConnection.Close()
        End Using
      End Using
    Catch ex As Exception
      Throw ex
    End Try
    Return pTransaccion
  End Function
  
  ''' <summary>
  ''' Funcion para generar un combo de la tabla Capt_TrasiegoCombustible
  ''' </summary>
  ''' <param name="pNombre">nombre a buscar en la tabla</param>
  ''' <returns>DataTable</returns>
  ''' <remarks>si el nombre es "" retornara todos los registros</remarks>
  Public Function Capt_TrasiegoCombustible_Combo(pNombre As String) As DataTable
    Dim dtResultado As New DataTable("Capt_TrasiegoCombustibleCombo")
    Try
      Using oraConnection As New Oracle.DataAccess.Client.OracleConnection(ConfigurationManager.ConnectionStrings("EDIV2DESOraClient").ConnectionString)
        Using oraCommandDocumentos As New Oracle.DataAccess.Client.OracleCommand()
          oraCommandDocumentos.Connection = oraConnection
          oraCommandDocumentos.CommandTimeout = consTimeOut
          oraCommandDocumentos.CommandType = CommandType.StoredProcedure
          oraCommandDocumentos.CommandText = "EDIV2.?NomPaquete.Capt_TrasiegoCombustibleCombo" 
		  oraCommandDocumentos.Parameters.Add("pNombre", pNombre)
          oraCommandDocumentos.Parameters.Add("pTransaccion", Oracle.DataAccess.Client.OracleDbType.Byte).Direction = ParameterDirection.Output
          oraCommandDocumentos.Parameters.Add(New Oracle.DataAccess.Client.OracleParameter("pCursor", OracleDbType.RefCursor)).Direction = ParameterDirection.Output

          Dim oraDataAdapter As New OracleDataAdapter(oraCommandDocumentos)
          oraDataAdapter.Fill(dtResultado)
          oraConnection.Close()
        End Using
      End Using
    Catch ex As Exception
      Throw ex
    End Try
    Return dtResultado
  End Function
  
  ''' <summary>
  ''' Funcion para generar la integracion del documento de la tabla Capt_TrasiegoCombustible
  ''' </summary>
  ''' <param name="pNidDocumento">numero del documento</param>
  ''' <returns>Byte</returns>
  ''' <remarks></remarks>
  Public Function Capt_TrasiegoCombustible_Integracion(pNidDocumento As Long) As Byte
    Dim pTransaccion As Byte = 0
    Dim mensaje As String = String.Empty
    Try
      Using oraConnection As New Oracle.DataAccess.Client.OracleConnection(ConfigurationManager.ConnectionStrings("EDIV2DESOraClient").ConnectionString)
        Using oraCommandDocumentos As New Oracle.DataAccess.Client.OracleCommand()
          oraCommandDocumentos.Connection = oraConnection
          oraCommandDocumentos.CommandTimeout = consTimeOut
          oraCommandDocumentos.CommandType = CommandType.StoredProcedure
          oraCommandDocumentos.CommandText = "EDIV2.?NomPaquete.Capt_TrasiegoCombustibleIntegracion"
          oraCommandDocumentos.Parameters.Add("pNidDocumento", pNidDocumento)
          oraCommandDocumentos.Parameters.Add("pTransaccion", Oracle.DataAccess.Client.OracleDbType.Byte).Direction = ParameterDirection.Output
          oraCommandDocumentos.Parameters.Add("pMensaje", Oracle.DataAccess.Client.OracleDbType.Varchar2, 200).Direction = ParameterDirection.Output

          oraConnection.Open()
          oraCommandDocumentos.ExecuteNonQuery()
          pTransaccion = CByte(oraCommandDocumentos.Parameters("pTransaccion").Value.ToString())
          mensaje = oraCommandDocumentos.Parameters("pMensaje").Value.ToString()
          oraConnection.Close()
        End Using
      End Using
    Catch ex As Exception
      Throw ex
    End Try
    Return pTransaccion
  End Function
  
  Public Function Capt_TrasiegoCombustible_Borrar(pnid As Long) As Byte
    Dim pTransaccion As Byte = 0
    Dim mensaje As String = String.Empty
    Try
      Using oraConnection As New Oracle.DataAccess.Client.OracleConnection(ConfigurationManager.ConnectionStrings("EDIV2DESOraClient").ConnectionString)
        Using oraCommandDocumentos As New Oracle.DataAccess.Client.OracleCommand()
          oraCommandDocumentos.Connection = oraConnection
          oraCommandDocumentos.CommandTimeout = consTimeOut
          oraCommandDocumentos.CommandType = CommandType.StoredProcedure
          oraCommandDocumentos.CommandText = "EDIV2.?NomPaquete.Capt_TrasiegoCombustibleBorrar"
          oraCommandDocumentos.Parameters.Add("pnid", pnid)
          oraCommandDocumentos.Parameters.Add("pTransaccion", Oracle.DataAccess.Client.OracleDbType.Byte).Direction = ParameterDirection.Output
          
          oraConnection.Open()
          oraCommandDocumentos.ExecuteNonQuery()
          pTransaccion = CByte(oraCommandDocumentos.Parameters("pTransaccion").Value.ToString())
          oraConnection.Close()
        End Using
      End Using
    Catch ex As Exception
      Throw ex
    End Try
    Return pTransaccion
  End Function
  
  
End Class
